package com.weixiaodong.ModelDesign.交给子类.FactoryMethod模式.工厂模式实例;

/**
 * 定义了创建Product对象的模版方法create
 *  1. 根据拥有者创建Product
 *  2. 将创建的Product进行注册
 *  3. 最终返回创建之后的对象
 */
public abstract class Factory {
    public final Product create(String owner) {
        Product product = createProduct(owner);
        registerProduct(product);
        return product;
    }

    protected abstract void registerProduct(Product product);

    protected abstract Product createProduct(String owner);
}
